package com.example.logistics.controller;

import cn.hutool.core.util.ObjectUtil;
import com.example.logistics.pojo.entity.ApiResponse;
import com.example.logistics.pojo.entity.WuLiu;
import com.example.logistics.service.WuLiuService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;

@RestController //这是一个RESTful风格的控制器类
@Slf4j //用于生成日志对象，方便在代码中进行日志输出。
public class WuLiuController {
    @Autowired //
    WuLiuService service;
    @GetMapping("/listData")
    public ApiResponse listData(Integer pageSize, Integer currentPage, @RequestParam(defaultValue = "") String searchCol, @RequestParam(defaultValue = "") String searchText){

            Page<WuLiu> wuLius = service.listData(pageSize,currentPage,searchCol,searchText);
        return ApiResponse.ok(wuLius);
    }
// Integer pageSize：整页面大小    Integer currentPage：当前页面
// @Autowired注解将WuLiuService注入其中，
// 通过@GetMapping注解定义了一个名为listData的接口，用于获取物流信息的列表数据。
// 接口中的pageSize和currentPage参数用于指定每页显示数量和当前页码。
// 接口返回的是一个ApiResponse对象，包含物流信息的分页数据。

    @PostMapping("/add")
    public ApiResponse add(@RequestBody WuLiu addForm){
        if(ObjectUtil.isNull(addForm.getId())){
            service.add(addForm);
        }else {
            service.update(addForm);
        }

        return ApiResponse.ok();
    }

// 该类使用了@PostMapping注解，表示这是一个用于添加物流信息的接口。
// 接口中使用了@RequestBody注解将请求体中的数据映射到WuLiu对象中。
// 如果WuLiu对象的id属性为空，则调用WuLiuService的add方法进行添加操作。

    @DeleteMapping("/deleteData/{id}")
    public ApiResponse delete(@PathVariable Integer id){
        service.delete(id);
        return ApiResponse.ok();
    }

// 该类使用了@DeleteMapping注解，表示这是一个用于删除物流信息的接口。
// 接口中使用了@PathVariable注解将路径中的id参数映射到方法的参数中。
// 方法中调用了WuLiuService的delete方法进行删除操作，并返回一个ApiResponse对象。
}
